#include "netif.h"
#include "string.h"


struct netif *netif_list;



/*
***添加网卡配置
*/
uint8_t netif_add(struct netif *netif,ip_addr_t *ipaddr,netif_init_fn init,
            netif_output_fn output,struct udp_pcb *upcb,struct tcp_pcb *tpcb)
{
  static uint8_t netif_num=0;
  if(init !=NULL);
    else return 0;
  memset(&netif->lacotip_addr,0,4);
  memset(&netif->netmask,0,4);
  memset(&netif->gw,0,4);
  if(netif ==NULL)
        return NULL;
  
  netif->num=++netif_num; //表示第几个网
  //本地地址设置
  ip_addr_set(&netif->lacotip_addr,ipaddr);
  netif->output=output;
  netif->tpcb=tpcb;
  netif->upcb=upcb;
  if(netif_list==NULL)
  {
    netif_list=netif;
  }
  else 
  netif_list->next=netif;
 // netif_list=netif;
  init(netif);
  return netif_num;
}
/*
***数据打包
**使用时应该偏移报文的长度
*/
void
pbuf_tack(struct pbuf *pbuf,const void *dataptr)
{
  if(pbuf->len !=0)
    if(dataptr !=0)
      memcpy(((uint8_t *)pbuf->payload+pbuf->hdr_len
              ),dataptr,pbuf->len);
}
